/*
 * 2006-1-11 lxm 创建。 
 */
package com.hd123.rumba.sql;

import org.apache.axis.AxisFault;

import com.hd123.rumba.request.SessionedService;
import com.hd123.rumba.runtime.HibernateSession;

/**
 * 查询 | 管理员 | Web Service实现类
 * 
 * @see com.hd123.rumba.sql.DSQLSubquery
 * @see com.hd123.rumba.sql.DSQLSubqueryParam
 * @see com.hd123.rumba.sql.DDatasetPage
 * @see com.hd123.rumba.sql.DDatasetColumnDef
 * 
 * @author lxm
 * 
 */
public class DQueryMgr extends SessionedService {

  /**
   * 执行查询
   * 
   * @param sq
   *          指定的查询语句对象。
   * @param pageSize
   * @param page
   * @return 查询结果集对象。
   * @throws AxisFault
   */
  public DDatasetPage query(DSQLSubquery sq, int pageSize, int page) throws AxisFault {
    try {
      SQLSubquery nsq = sq.createSQLSubquery();
      ResultPage rp = ResultPage.createHibernateResultPage(HibernateSession.getSession(), nsq,
          pageSize, page);
      DDatasetPage dsp = new DDatasetPage();
      dsp.assignFrom(rp);
      return dsp;
    } catch (Exception e) {
      e.printStackTrace();
      throw AxisFault.makeFault(e);
    }
  }
}
